﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using DevExpress.XtraEditors;
using Atlandiz.Data;

namespace Atlandiz.EnvanterVeZimmetYonetimi
{
    public partial class FormKullanici : DevExpress.XtraEditors.XtraForm
    {
        //MsSqlAccessLayer SQL = new MsSqlAccessLayer(".\\SQLExpress","TeknoEnva",true);
        public int KayID;

        public FormKullanici()
        {
            InitializeComponent();
        }

        public void formuTemizle()
        {
            _txtAdSoyadString.Text = "";
            _txtKullaniciAdiString.Text = "";
            _txtSifreString.Text = "";
            _txtSifreTekrarString.Text = "";
            _cbYetkiString.Text = "";
            _cbYetkiInt.Text = "";
            labelControl6.Text = "";
            _txtAdSoyadString.Focus();
        }

        public void KayitGetir()
        {
            DataTable dt = Army.SQL().GetDataTable("Select kID, kAdi,Parola,AdSoyad,CreateDate,UpdateDate,Yetki from Kullanici where kID=" + KayID);

            _txtAdSoyadString.Text = dt.Rows[0][3].ToString();
            _txtKullaniciAdiString.Text = dt.Rows[0][1].ToString();
            _cbYetkiInt.Text = dt.Rows[0][6].ToString();
            if (_cbYetkiInt.Text == "1")
            {
                _cbYetkiString.Text = "Yönetici";
            }
            else if(_cbYetkiInt.Text == "2")
            {
                _cbYetkiString.Text = "Kullanıcı";
            }

            //if(dt.Rows[0][6].ToString() == "1")
            //{
            //    comboBoxEdit1.Text = "Yönetici";
            //}
            //else if (dt.Rows[0][6].ToString() == "2")
            //{
            //    comboBoxEdit1.Text = "Kullanıcı";
            //}
        }

        private void Kullanici_Load(object sender, EventArgs e)
        {
            if (KayID != 0)
            {
                KayitGetir();

            }  
        }

        private void textEdit4_Leave(object sender, EventArgs e)
        {
            if (_txtSifreTekrarString.Text != _txtSifreString.Text)
            {
                labelControl6.Text ="Şifre, eşleşmiyor";
            }
            else if (_txtSifreTekrarString.Text == _txtSifreString.Text)
            {
                labelControl6.Text ="";
            }
        }

        private void _btnFormuTemizle_Click(object sender, EventArgs e)
        {
            formuTemizle();
        }

        private void _btnKapat_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void _btnKullaniciListesi_Click(object sender, EventArgs e)
        {
            ListeKullanici kl = new ListeKullanici();
            kl.ShowDialog();
        }

        private void _btnKaydet_Click(object sender, EventArgs e)
        {
            string username = _txtKullaniciAdiString.Text;
            string pass = _txtSifreTekrarString.Text;


            if (_txtSifreString.Text != _txtSifreTekrarString.Text) {
                MessageBox.Show("Şifre Eşleşmiyor", "Hata Oluştu", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            if (_cbYetkiString.SelectedIndex<0) {
                MessageBox.Show("Yetki Seçmelisiniz.","Hata Oluştu",MessageBoxButtons.OK,MessageBoxIcon.Error);
                return;
            }

            int Varmi = 0;
            switch (KayID) {
                case 0:
                    Varmi = int.Parse(Army.SQL().GetDataCell("Select count(*) from Kullanici where kAdi='" + username + "'"));
                    if (Varmi > 0) {
                        MessageBox.Show("Seçtiğiniz kullanıcı adı farklı bir kullanıcıya tanımlı.\nLütfen Farklı bir Kullanıcı Adı seçiniz.", "Hata Oluştu", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        return;                    
                    }

                    int i = _cbYetkiString.SelectedIndex;
                    pass = Atlandiz.Data.Hash.ComputeHash(pass, "SHA1", null);
                    Army.SQL().cmd("Insert Kullanici (AdSoyad,kAdi,Parola,CreateDate,Yetki) values('" + _txtAdSoyadString.Text.ToString().Replace("'", "''") + "', '" + _txtKullaniciAdiString.Text.ToString().Replace("'", "''") + "', '" + pass.Replace("'", "''") + "',Convert(datetime,'" + DateTime.Now + "',104),'" + _cbYetkiInt.Items[i].ToString() + "' )");
                    
                    formuTemizle();
                    break;
                default:
                    Varmi = int.Parse(Army.SQL().GetDataCell("Select count(*) from Kullanici where kAdi='" + username + "' and kID<>" + KayID));
                    if (Varmi > 0) {
                        MessageBox.Show("Seçtiğiniz kullanıcı adı farklı bir kullanıcıya tanımlı.\nLütfen Farklı bir Kullanıcı Adı seçiniz.", "Hata Oluştu", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        return;                    
                    }

                    pass = Atlandiz.Data.Hash.ComputeHash(pass, "SHA1", null);
                    Army.SQL().cmd("Update Kullanici Set AdSoyad='" + _txtAdSoyadString.Text.ToString().Replace("'", "''") + "',kAdi='" + _txtKullaniciAdiString.Text.ToString().Replace("'", "''") + "', Parola='" + pass.Replace("'", "''") + "',UpdateDate=Convert(datetime,'" + DateTime.Now + "',104),Yetki='" + _cbYetkiInt.Items[_cbYetkiString.SelectedIndex].ToString() + "'   where kID=" + KayID);
                    MessageBox.Show("{" + KayID + "} Numaralı Kayıt Başarı ile Güncellendi. ");
                    this.Close();
                    break;
            };
        }

        private void simpleButton1_Click(object sender, EventArgs e)
        {
            if (KayID != 0)
            {
                ListeYetkiliDepolar yd = new ListeYetkiliDepolar();
                yd.User_Id = KayID;
                yd.ShowDialog();

            }
            else
            {
                MessageBox.Show("Önce Kullanıcıyı oluşturmalısınız.\nBunun için kaydedin.");
            }

        }
    }
}